listbox: Properly remove placeholders
authorTimm Bäder <mail@baedert.org>
Fri, 7 Apr 2017 17:02:35 +0000 (19:02 +0200)
committerTimm Bäder <mail@baedert.org>
Tue, 25 Apr 2017 18:29:02 +0000 (20:29 +0200)
gtk/gtklistbox.c

index 31cfc45d818351dd126413c24e1ed1bb6e1f0b1c..e8fd95ac778178a03e3e6e4ab7ea2e11c6663fa0 100644 (file)
@@ -2484,6 +2484,16 @@ gtk_list_box_remove (GtkContainer *container,
 
   was_visible = gtk_widget_get_visible (child);
 
+  if (child == priv->placeholder)
+    {
+      gtk_widget_unparent (child);
+      priv->placeholder = NULL;
+      if (was_visible && gtk_widget_get_visible (widget))
+        gtk_widget_queue_resize (widget);
+
+      return;
+    }
+
   if (!GTK_IS_LIST_BOX_ROW (child))
     {
       row = g_hash_table_lookup (priv->header_hash, child);
@@ -2565,7 +2575,7 @@ gtk_list_box_forall (GtkContainer *container,
   GSequenceIter *iter;
   GtkListBoxRow *row;
 
-  if (priv->placeholder != NULL && include_internals)
+  if (priv->placeholder != NULL)
     callback (priv->placeholder, callback_target);
 
   iter = g_sequence_get_begin_iter (priv->children);